package data;

import java.util.HashMap;

/**
 * term collection adalah koleksi hasil ekstraksi dari term
 * @author Muqtafi Akhmad
 */
public interface TermCollection {

    /**
     * menambahkan term ke dalam koleksi
     * @param term term
     */
    public void addTerm(Term term);

    /**
     * mengembalikan apakah term yang dimaksud ada dalam koleksi
     * @param term term yang dicek
     * @return apakah term sudah ada dalam koleksi
     */
    public boolean isExists(Term term);

    /**
     * mendapatkan term dari koleksi yang sesuai dengan string term parameter
     * @param termString term string yang dicocokkan
     * @return apakah term ada dalam koleksi
     */
    public Term getExistingTerm(String termString);

    /**
     * menggabungkan term dengan term yang sudah ada dalam koleksi
     * @param term term yang digabungkan
     */
    public void merge(Term term);

    /**
     * mengembalikan semua term dari dalam dokumen
     * @return koleksi term dalam bentuk hashmap
     */
    public HashMap<String, Term> getAllTerms();

    /**
     * mendapatkan jumlah dokumen yang telah diekstrak untuk mendapatkan term
     * @return jumlah dokumen
     */
    public Integer getDocumentCount();

    /**
     * mengisikan jumlah dokumen yang telah diekstrak
     * @param documentCount jumlah dokumen
     */
    public void setDocumentCount(Integer documentCount);
}
